import pandas as pd
data = {'Nom': ['Anna', 'Bob', 'Charles'], 'Age': [28, 34, 29]}
df = pd.DataFrame(data)
df| Nom | Age | |
|---|---|---|
| 0 | Anna | 28 |
| 1 | Bob | 34 |
| 2 | Charles | 29 |
Remi Genet
2024-02-04
Un dataframe est une structure de données bidimensionnelle, similaire à une feuille de calcul ou une table de base de données. Ils sont extrêmement utiles pour la manipulation et l’analyse de données structurées. En Python, la bibliothèque la plus courante pour travailler avec des dataframes est Pandas.
import pandas as pd
data = {'Nom': ['Anna', 'Bob', 'Charles'], 'Age': [28, 34, 29]}
df = pd.DataFrame(data)
df| Nom | Age | |
|---|---|---|
| 0 | Anna | 28 |
| 1 | Bob | 34 |
| 2 | Charles | 29 |
print(df) ou Display(df) (dans un notebook - affiche un tableau de façon plus lisible. Il faut importer from IPython.display import display)df['Nom']df[df['Age'] > 30]Les dataframes, via la bibliothèque Pandas, sont des outils essentiels en Python pour la manipulation de données. Leur simplicité et leur puissance en font un choix privilégié pour les data scientists et les analystes de données.
Quand on travaille avec de grands ensembles de données, il est crucial de savoir comment gérer efficacement la mémoire et le temps de traitement.
chunk_size = 1000
for chunk in pd.read_csv('large_file.csv', chunksize=chunk_size):
# Traitement de chaque morceaudf['Nouvelle_Colonne'] = df['Colonne1'] + df['Colonne2']df.drop('Colonne', axis=1, inplace=True)df['Colonne'].apply(lambda x: x * 2)Objectif: Manipuler un grand fichier CSV et effectuer des opérations sur les colonnes.
Énoncé: Lisez un grand fichier CSV par morceaux. Pour chaque morceau, ajoutez une colonne ‘AgeDoubled’ qui est le double de la colonne ‘Age’, puis enregistrez chaque morceau modifié dans un nouveau fichier.
Solution:
La maîtrise des opérations avancées sur les dataframes est essentielle pour traiter efficacement des ensembles de données complexes. Les possibilités offertes par Pandas en font un outil incontournable pour la manipulation et l’analyse de données en Python.
import dask.dataframe as dddask_df = dd.from_pandas(pandas_df, npartitions=10)iterrows() et itertuples() pour itérer sur les dataframes de manière plus performante.import matplotlib.pyplot as plt
# Fusion des fichiers CSV
df_total = pd.concat([pd.read_csv(f) for f in fichiers_csv])
# Calcul du total des ventes par mois
ventes_par_mois = df_total.groupby('Mois')['Ventes'].sum()
# Création du graphique
ventes_par_mois.plot(kind='line')
plt.title('Ventes Mensuelles')
plt.show()Les dataframes, grâce à leur flexibilité et leur puissance, sont un outil fondamental pour l’analyse de données, le traitement préparatoire pour le machine learning, et la création de rapports et visualisations. L’optimisation des performances et l’utilisation de bibliothèques complémentaires comme Dask peuvent augmenter considérablement l’efficacité du travail avec de grandes quantités de données.
Après avoir abordé les bases, les aspects avancés et des exemples concrets d’utilisation des dataframes, il est utile de conclure avec quelques astuces et meilleures pratiques qui peuvent rendre le travail avec les dataframes encore plus efficace et agréable.
df = (pd.read_csv('data.csv')
.dropna()
.rename(columns={'old_name': 'new_name'})
.sort_values('column'))On parle aussi pour décrire ce genre d’API, de fluent API. Le terme API fait ici référence à l’API utilisateur, c’est à dire l’ensemble des fonctions et méthodes que l’on peut utiliser pour interagir avec une bibliothèque. Une API est dite fluide lorsqu’elle permet d’enchaîner les appels de méthodes, comme dans l’exemple ci-dessus.
query pour le Filtrage: La méthode query permet un filtrage plus lisible et souvent plus rapide.np.where: Pour créer de nouvelles colonnes basées sur des conditions.La maîtrise des dataframes dans Pandas ne se limite pas seulement à connaître diverses fonctions et méthodes, mais implique également une compréhension des meilleures pratiques et astuces pour optimiser la performance et la lisibilité du code. Cela inclut une utilisation efficace de la mémoire, l’évitement des boucles inutiles, et une bonne documentation du code.
Vous trouverez également des exemples simple d’utilisation de tout les fonctions standards dans ce Notebook
que vous pouvez également télécharger directement ici:
Pour vous entrainer, vous pouvez télécharger le fichier suivant et l’importer dans un notebook Jupyter :